package com.lqk.nio.selector;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

public class NIOClient {
    public static void main(String[] args) throws Exception {
        // 得到一个网络通道
        SocketChannel socketChannel = SocketChannel.open();
        // 设置非阻塞模式
        socketChannel.configureBlocking(false);
        // 提供服务器端的ip和端口
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 6666);
        // 连接服务器
        if (!socketChannel.connect(inetSocketAddress)){
            while (!socketChannel.finishConnect()){
                System.out.println("因为连接需要时间，客户端不会阻塞，可以做其他工作");
            }
        }
        // 如果连接成功，就发送数据
        String str="hello, lqk~~";
        ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());//包裹一个字节数组到Buffer中，大小跟传进去的字节大小一致
        // 发送数据，将Buffer中的数据写入到channel
        // 5 模式切换
        byteBuffer.flip();
        socketChannel.write(byteBuffer);
        System.in.read();
    }
}
